﻿/*********************************************************
 * 开发人员：小兵
 * 创建时间：2012-9-25 15:51:52
 * 描述说明：
 * 
 * 更改历史：
 * 
 * *******************************************************/
namespace Mozlite.Components
{
    using System;
    using System.Web;
    using System.Data;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;

    /// <summary>
    /// 临时文件夹清理服务。
    /// </summary>
    public class TemporaryFileStorageTask:TaskBase
    {
        /// <summary>
        /// 2小时。
        /// </summary>
        public override int Delay
        {
            get { return 2 * Consts.HourSeconds; }
        }
        /// <summary>
        /// 执行清理文件。
        /// </summary>
        public override void Execute()
        {
            var root = new DirectoryInfo(Cores.GetPath("_temp"));
            if(!root.Exists)
                return;

            if(IsExpired(root.LastWriteTime))
                root.Delete(true);

            foreach(var file in root.GetFiles("*", SearchOption.TopDirectoryOnly))
            {
                if(IsExpired(file.LastWriteTime))
                    file.Delete();
            }

            foreach(var dir in root.GetDirectories("*", SearchOption.TopDirectoryOnly))
            {
                if(IsExpired(dir.LastWriteTime))
                    dir.Delete(true);
            }
        }

        private bool IsExpired(DateTime dateTime) {
            return dateTime < DateTime.Now.AddHours(-2);
        }
    }
}
